; ModuleID = 'main.c0zeafbb-cgu.0'
source_filename = "main.c0zeafbb-cgu.0"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"core::panic::Location" = type { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }
%"unwind::libunwind::_Unwind_Exception" = type { [0 x i64], i64, [0 x i64], void (i32, %"unwind::libunwind::_Unwind_Exception"*)*, [0 x i64], [6 x i64], [0 x i64] }
%"unwind::libunwind::_Unwind_Context" = type { [0 x i8] }

$asan.module_ctor = comdat any

$asan.module_dtor = comdat any

$"vtable.0$eb6e5ca8b4df06a7c4bfe49fdedb9eca" = comdat any

$"alloc47$eb6e5ca8b4df06a7c4bfe49fdedb9eca" = comdat any

$"alloc46$eb6e5ca8b4df06a7c4bfe49fdedb9eca" = comdat any

@vtable.0 = internal constant { { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] } { { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* } { void (i8**)* @_ZN4core3ptr13drop_in_place17hd8a4cef62c6d9bc1E, i64 8, i64 8, i32 (i8**)* @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hf4feddeae345ff7eE", i32 (i8**)* @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hf4feddeae345ff7eE", i32 (i8**)* @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h8ffeaa7f541ea37eE" }, [48 x i8] zeroinitializer }, comdat($"vtable.0$eb6e5ca8b4df06a7c4bfe49fdedb9eca"), align 32
@alloc47 = internal constant { <{ [11 x i8] }>, [53 x i8] } { <{ [11 x i8] }> <{ [11 x i8] c"src/main.rs" }>, [53 x i8] zeroinitializer }, comdat($"alloc47$eb6e5ca8b4df06a7c4bfe49fdedb9eca"), align 32
@alloc46 = internal constant { <{ i8*, [16 x i8] }>, [40 x i8] } { <{ i8*, [16 x i8] }> <{ i8* getelementptr inbounds ({ <{ [11 x i8] }>, [53 x i8] }, { <{ [11 x i8] }>, [53 x i8] }* @alloc47, i32 0, i32 0, i32 0, i32 0), [16 x i8] c"\0B\00\00\00\00\00\00\00\0C\00\00\00\05\00\00\00" }>, [40 x i8] zeroinitializer }, comdat($"alloc46$eb6e5ca8b4df06a7c4bfe49fdedb9eca"), align 32
@__asan_option_detect_stack_use_after_return = external global i32
@___asan_gen_ = private unnamed_addr constant [12 x i8] c"1 32 8 2 _7\00", align 1
@___asan_gen_.8 = private unnamed_addr constant [14 x i8] c"1 32 8 4 _7.i\00", align 1
@___asan_gen_.9 = private constant [20 x i8] c"main.c0zeafbb-cgu.0\00", align 1
@___asan_gen_.10 = private unnamed_addr constant [9 x i8] c"vtable.0\00", align 1
@___asan_gen_.11 = private unnamed_addr constant [8 x i8] c"alloc47\00", align 1
@___asan_gen_.12 = private unnamed_addr constant [8 x i8] c"alloc46\00", align 1
@__asan_global_vtable.0 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @0 to i64), i64 48, i64 96, i64 ptrtoint ([9 x i8]* @___asan_gen_.10 to i64), i64 ptrtoint ([20 x i8]* @___asan_gen_.9 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"vtable.0$eb6e5ca8b4df06a7c4bfe49fdedb9eca"), !associated !0
@__asan_global_alloc47 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ [11 x i8] }>, [53 x i8] }* @1 to i64), i64 11, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.11 to i64), i64 ptrtoint ([20 x i8]* @___asan_gen_.9 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc47$eb6e5ca8b4df06a7c4bfe49fdedb9eca"), !associated !1
@__asan_global_alloc46 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [16 x i8] }>, [40 x i8] }* @2 to i64), i64 24, i64 64, i64 ptrtoint ([8 x i8]* @___asan_gen_.12 to i64), i64 ptrtoint ([20 x i8]* @___asan_gen_.9 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc46$eb6e5ca8b4df06a7c4bfe49fdedb9eca"), !associated !2
@llvm.compiler.used = appending global [6 x i8*] [i8* bitcast ({ { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @vtable.0 to i8*), i8* getelementptr inbounds ({ <{ [11 x i8] }>, [53 x i8] }, { <{ [11 x i8] }>, [53 x i8] }* @alloc47, i32 0, i32 0, i32 0, i32 0), i8* bitcast ({ <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc46 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_vtable.0 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc47 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc46 to i8*)], section "llvm.metadata"
@___asan_globals_registered = common hidden global i64 0
@__start_asan_globals = extern_weak hidden global i64
@__stop_asan_globals = extern_weak hidden global i64
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* @asan.module_ctor, i8* bitcast (void ()* @asan.module_ctor to i8*) }]
@llvm.global_dtors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* @asan.module_dtor, i8* bitcast (void ()* @asan.module_dtor to i8*) }]

@0 = private alias { { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }, { { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @vtable.0
@1 = private alias { <{ [11 x i8] }>, [53 x i8] }, { <{ [11 x i8] }>, [53 x i8] }* @alloc47
@2 = private alias { <{ i8*, [16 x i8] }>, [40 x i8] }, { <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc46

; std::rt::lang_start
; Function Attrs: nonlazybind sanitize_address uwtable
define hidden i64 @_ZN3std2rt10lang_start17hf09ca94f194ce390E(void ()* nonnull %main, i64 %argc, i8** %argv) unnamed_addr #0 {
start:
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 64, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to i8**
  %13 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %13
  %14 = add i64 %10, 8
  %15 = inttoptr i64 %14 to i64*
  store i64 ptrtoint ([12 x i8]* @___asan_gen_ to i64), i64* %15
  %16 = add i64 %10, 16
  %17 = inttoptr i64 %16 to i64*
  store i64 ptrtoint (i64 (void ()*, i64, i8**)* @_ZN3std2rt10lang_start17hf09ca94f194ce390E to i64), i64* %17
  %18 = lshr i64 %10, 3
  %19 = add i64 %18, 2147450880
  %20 = add i64 %19, 0
  %21 = inttoptr i64 %20 to i64*
  store i64 -868082052615769615, i64* %21, align 1
  %22 = bitcast i8** %12 to i8*
  %23 = add i64 %19, 4
  %24 = inttoptr i64 %23 to i8*
  store i8 0, i8* %24, align 1
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %22)
  %25 = bitcast i8** %12 to void ()**
  %26 = ptrtoint void ()** %25 to i64
  %27 = lshr i64 %26, 3
  %28 = add i64 %27, 2147450880
  %29 = inttoptr i64 %28 to i8*
  %30 = load i8, i8* %29
  %31 = icmp ne i8 %30, 0
  br i1 %31, label %32, label %33

32:                                               ; preds = %9
  call void @__asan_report_store8(i64 %26)
  call void asm sideeffect "", ""()
  unreachable

33:                                               ; preds = %9
  store void ()* %main, void ()** %25, align 8
  %_4.0 = bitcast i8** %12 to {}*
; call std::rt::lang_start_internal
  %34 = call i64 @_ZN3std2rt19lang_start_internal17hf4abd869024c3270E({}* nonnull align 1 %_4.0, [3 x i64]* noalias readonly align 8 dereferenceable(24) bitcast ({ { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @vtable.0 to [3 x i64]*), i64 %argc, i8** %argv)
  %35 = add i64 %19, 4
  %36 = inttoptr i64 %35 to i8*
  store i8 -8, i8* %36, align 1
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %22)
  store i64 1172321806, i64* %13
  %37 = icmp ne i64 %5, 0
  br i1 %37, label %38, label %45

38:                                               ; preds = %33
  %39 = add i64 %19, 0
  %40 = inttoptr i64 %39 to i64*
  store i64 -723401728380766731, i64* %40, align 1
  %41 = add i64 %5, 56
  %42 = inttoptr i64 %41 to i64*
  %43 = load i64, i64* %42
  %44 = inttoptr i64 %43 to i8*
  store i8 0, i8* %44
  br label %48

45:                                               ; preds = %33
  %46 = add i64 %19, 0
  %47 = inttoptr i64 %46 to i64*
  store i64 0, i64* %47, align 1
  br label %48

48:                                               ; preds = %45, %38
  ret i64 %34
}

; std::rt::lang_start::{{closure}}
; Function Attrs: nonlazybind sanitize_address uwtable
define internal i32 @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hf4feddeae345ff7eE"(i8** noalias nocapture readonly align 8 dereferenceable(8) %_1) unnamed_addr #0 {
start:
  %0 = bitcast i8** %_1 to void ()**
  %1 = ptrtoint void ()** %0 to i64
  %2 = lshr i64 %1, 3
  %3 = add i64 %2, 2147450880
  %4 = inttoptr i64 %3 to i8*
  %5 = load i8, i8* %4
  %6 = icmp ne i8 %5, 0
  br i1 %6, label %7, label %8

7:                                                ; preds = %start
  call void @__asan_report_load8(i64 %1)
  call void asm sideeffect "", ""()
  unreachable

8:                                                ; preds = %start
  %_3 = load void ()*, void ()** %0, align 8, !nonnull !6
  tail call void %_3()
  ret i32 0
}

; core::ops::function::FnOnce::call_once{{vtable.shim}}
; Function Attrs: nonlazybind sanitize_address uwtable
define internal i32 @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h8ffeaa7f541ea37eE"(i8** nocapture readonly %_1) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
start:
  %0 = bitcast i8** %_1 to void ()**
  %1 = ptrtoint void ()** %0 to i64
  %2 = lshr i64 %1, 3
  %3 = add i64 %2, 2147450880
  %4 = inttoptr i64 %3 to i8*
  %5 = load i8, i8* %4
  %6 = icmp ne i8 %5, 0
  br i1 %6, label %7, label %8

7:                                                ; preds = %start
  call void @__asan_report_load8(i64 %1)
  call void asm sideeffect "", ""()
  unreachable

8:                                                ; preds = %start
  %9 = load void ()*, void ()** %0, align 8, !nonnull !6
  tail call void %9(), !noalias !7
  ret i32 0
}

; core::ptr::drop_in_place
; Function Attrs: norecurse nounwind nonlazybind readnone sanitize_address uwtable
define internal void @_ZN4core3ptr13drop_in_place17hd8a4cef62c6d9bc1E(i8** nocapture %_1) unnamed_addr #1 {
start:
  ret void
}

; main::test_array
; Function Attrs: noreturn nonlazybind sanitize_address uwtable
define internal fastcc void @_ZN4main10test_array17hed2b704217f7aaa6E() unnamed_addr #2 {
start:
  call void @__asan_handle_no_return()
; call core::panicking::panic_bounds_check
  tail call void @_ZN4core9panicking18panic_bounds_check17hdef4fff11e167a6aE(i64 1, i64 1, %"core::panic::Location"* noalias readonly align 8 dereferenceable(24) bitcast ({ <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc46 to %"core::panic::Location"*))
  unreachable
}

; main::main
; Function Attrs: nonlazybind sanitize_address uwtable
define internal void @_ZN4main4main17h8c3a62ffb8c0dbfeE() unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
start:
  call void @__asan_handle_no_return()
; call main::test_array
  tail call fastcc void @_ZN4main10test_array17hed2b704217f7aaa6E()
  unreachable
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #3

; std::rt::lang_start_internal
; Function Attrs: nonlazybind sanitize_address uwtable
declare i64 @_ZN3std2rt19lang_start_internal17hf4abd869024c3270E({}* nonnull align 1, [3 x i64]* noalias readonly align 8 dereferenceable(24), i64, i8**) unnamed_addr #0

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #3

; Function Attrs: nounwind nonlazybind sanitize_address uwtable
declare i32 @rust_eh_personality(i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*) unnamed_addr #4

; core::panicking::panic_bounds_check
; Function Attrs: cold noinline noreturn nonlazybind sanitize_address uwtable
declare void @_ZN4core9panicking18panic_bounds_check17hdef4fff11e167a6aE(i64, i64, %"core::panic::Location"* noalias readonly align 8 dereferenceable(24)) unnamed_addr #5

; Function Attrs: nonlazybind sanitize_address
define i32 @main(i32 %0, i8** %1) unnamed_addr #6 {
top:
  %asan_local_stack_base = alloca i64
  %2 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %3 = icmp ne i32 %2, 0
  br i1 %3, label %4, label %6

4:                                                ; preds = %top
  %5 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %6

6:                                                ; preds = %top, %4
  %7 = phi i64 [ 0, %top ], [ %5, %4 ]
  %8 = icmp eq i64 %7, 0
  br i1 %8, label %9, label %11

9:                                                ; preds = %6
  %MyAlloca = alloca i8, i64 64, align 32
  %10 = ptrtoint i8* %MyAlloca to i64
  br label %11

11:                                               ; preds = %6, %9
  %12 = phi i64 [ %7, %6 ], [ %10, %9 ]
  store i64 %12, i64* %asan_local_stack_base
  %13 = add i64 %12, 32
  %14 = inttoptr i64 %13 to i8**
  %15 = inttoptr i64 %12 to i64*
  store i64 1102416563, i64* %15
  %16 = add i64 %12, 8
  %17 = inttoptr i64 %16 to i64*
  store i64 ptrtoint ([14 x i8]* @___asan_gen_.8 to i64), i64* %17
  %18 = add i64 %12, 16
  %19 = inttoptr i64 %18 to i64*
  store i64 ptrtoint (i32 (i32, i8**)* @main to i64), i64* %19
  %20 = lshr i64 %12, 3
  %21 = add i64 %20, 2147450880
  %22 = add i64 %21, 0
  %23 = inttoptr i64 %22 to i64*
  store i64 -868082052615769615, i64* %23, align 1
  %24 = sext i32 %0 to i64
  %25 = bitcast i8** %14 to i8*
  %26 = add i64 %21, 4
  %27 = inttoptr i64 %26 to i8*
  store i8 0, i8* %27, align 1
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %25)
  %28 = bitcast i8** %14 to void ()**
  %29 = ptrtoint void ()** %28 to i64
  %30 = lshr i64 %29, 3
  %31 = add i64 %30, 2147450880
  %32 = inttoptr i64 %31 to i8*
  %33 = load i8, i8* %32
  %34 = icmp ne i8 %33, 0
  br i1 %34, label %35, label %36

35:                                               ; preds = %11
  call void @__asan_report_store8(i64 %29)
  call void asm sideeffect "", ""()
  unreachable

36:                                               ; preds = %11
  store void ()* @_ZN4main4main17h8c3a62ffb8c0dbfeE, void ()** %28, align 8
  %_4.0.i = bitcast i8** %14 to {}*
; call std::rt::lang_start_internal
  %37 = call i64 @_ZN3std2rt19lang_start_internal17hf4abd869024c3270E({}* nonnull align 1 %_4.0.i, [3 x i64]* noalias readonly align 8 dereferenceable(24) bitcast ({ { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @vtable.0 to [3 x i64]*), i64 %24, i8** %1)
  %38 = add i64 %21, 4
  %39 = inttoptr i64 %38 to i8*
  store i8 -8, i8* %39, align 1
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %25)
  %40 = trunc i64 %37 to i32
  store i64 1172321806, i64* %15
  %41 = icmp ne i64 %7, 0
  br i1 %41, label %42, label %49

42:                                               ; preds = %36
  %43 = add i64 %21, 0
  %44 = inttoptr i64 %43 to i64*
  store i64 -723401728380766731, i64* %44, align 1
  %45 = add i64 %7, 56
  %46 = inttoptr i64 %45 to i64*
  %47 = load i64, i64* %46
  %48 = inttoptr i64 %47 to i8*
  store i8 0, i8* %48
  br label %52

49:                                               ; preds = %36
  %50 = add i64 %21, 0
  %51 = inttoptr i64 %50 to i64*
  store i64 0, i64* %51, align 1
  br label %52

52:                                               ; preds = %49, %42
  ret i32 %40
}

declare void @__asan_report_load_n(i64, i64)

declare void @__asan_loadN(i64, i64)

declare void @__asan_report_load1(i64)

declare void @__asan_load1(i64)

declare void @__asan_report_load2(i64)

declare void @__asan_load2(i64)

declare void @__asan_report_load4(i64)

declare void @__asan_load4(i64)

declare void @__asan_report_load8(i64)

declare void @__asan_load8(i64)

declare void @__asan_report_load16(i64)

declare void @__asan_load16(i64)

declare void @__asan_report_store_n(i64, i64)

declare void @__asan_storeN(i64, i64)

declare void @__asan_report_store1(i64)

declare void @__asan_store1(i64)

declare void @__asan_report_store2(i64)

declare void @__asan_store2(i64)

declare void @__asan_report_store4(i64)

declare void @__asan_store4(i64)

declare void @__asan_report_store8(i64)

declare void @__asan_store8(i64)

declare void @__asan_report_store16(i64)

declare void @__asan_store16(i64)

declare void @__asan_report_exp_load_n(i64, i64, i32)

declare void @__asan_exp_loadN(i64, i64, i32)

declare void @__asan_report_exp_load1(i64, i32)

declare void @__asan_exp_load1(i64, i32)

declare void @__asan_report_exp_load2(i64, i32)

declare void @__asan_exp_load2(i64, i32)

declare void @__asan_report_exp_load4(i64, i32)

declare void @__asan_exp_load4(i64, i32)

declare void @__asan_report_exp_load8(i64, i32)

declare void @__asan_exp_load8(i64, i32)

declare void @__asan_report_exp_load16(i64, i32)

declare void @__asan_exp_load16(i64, i32)

declare void @__asan_report_exp_store_n(i64, i64, i32)

declare void @__asan_exp_storeN(i64, i64, i32)

declare void @__asan_report_exp_store1(i64, i32)

declare void @__asan_exp_store1(i64, i32)

declare void @__asan_report_exp_store2(i64, i32)

declare void @__asan_exp_store2(i64, i32)

declare void @__asan_report_exp_store4(i64, i32)

declare void @__asan_exp_store4(i64, i32)

declare void @__asan_report_exp_store8(i64, i32)

declare void @__asan_exp_store8(i64, i32)

declare void @__asan_report_exp_store16(i64, i32)

declare void @__asan_exp_store16(i64, i32)

declare i8* @__asan_memmove(i8*, i8*, i64)

declare i8* @__asan_memcpy(i8*, i8*, i64)

declare i8* @__asan_memset(i8*, i32, i64)

declare void @__asan_handle_no_return()

declare void @__sanitizer_ptr_cmp(i64, i64)

declare void @__sanitizer_ptr_sub(i64, i64)

declare i64 @__asan_stack_malloc_0(i64)

declare void @__asan_stack_free_0(i64, i64)

declare i64 @__asan_stack_malloc_1(i64)

declare void @__asan_stack_free_1(i64, i64)

declare i64 @__asan_stack_malloc_2(i64)

declare void @__asan_stack_free_2(i64, i64)

declare i64 @__asan_stack_malloc_3(i64)

declare void @__asan_stack_free_3(i64, i64)

declare i64 @__asan_stack_malloc_4(i64)

declare void @__asan_stack_free_4(i64, i64)

declare i64 @__asan_stack_malloc_5(i64)

declare void @__asan_stack_free_5(i64, i64)

declare i64 @__asan_stack_malloc_6(i64)

declare void @__asan_stack_free_6(i64, i64)

declare i64 @__asan_stack_malloc_7(i64)

declare void @__asan_stack_free_7(i64, i64)

declare i64 @__asan_stack_malloc_8(i64)

declare void @__asan_stack_free_8(i64, i64)

declare i64 @__asan_stack_malloc_9(i64)

declare void @__asan_stack_free_9(i64, i64)

declare i64 @__asan_stack_malloc_10(i64)

declare void @__asan_stack_free_10(i64, i64)

declare void @__asan_poison_stack_memory(i64, i64)

declare void @__asan_unpoison_stack_memory(i64, i64)

declare void @__asan_set_shadow_00(i64, i64)

declare void @__asan_set_shadow_f1(i64, i64)

declare void @__asan_set_shadow_f2(i64, i64)

declare void @__asan_set_shadow_f3(i64, i64)

declare void @__asan_set_shadow_f5(i64, i64)

declare void @__asan_set_shadow_f8(i64, i64)

declare void @__asan_alloca_poison(i64, i64)

declare void @__asan_allocas_unpoison(i64, i64)

declare void @__asan_before_dynamic_init(i64)

declare void @__asan_after_dynamic_init()

declare void @__asan_register_globals(i64, i64)

declare void @__asan_unregister_globals(i64, i64)

declare void @__asan_register_image_globals(i64)

declare void @__asan_unregister_image_globals(i64)

declare void @__asan_register_elf_globals(i64, i64, i64)

declare void @__asan_unregister_elf_globals(i64, i64, i64)

declare void @__asan_init()

define internal void @asan.module_ctor() comdat {
  call void @__asan_init()
  call void @__asan_version_mismatch_check_v8()
  call void @__asan_register_elf_globals(i64 ptrtoint (i64* @___asan_globals_registered to i64), i64 ptrtoint (i64* @__start_asan_globals to i64), i64 ptrtoint (i64* @__stop_asan_globals to i64))
  ret void
}

declare void @__asan_version_mismatch_check_v8()

define internal void @asan.module_dtor() comdat {
  call void @__asan_unregister_elf_globals(i64 ptrtoint (i64* @___asan_globals_registered to i64), i64 ptrtoint (i64* @__start_asan_globals to i64), i64 ptrtoint (i64* @__stop_asan_globals to i64))
  ret void
}

attributes #0 = { nonlazybind sanitize_address uwtable "target-cpu"="x86-64" }
attributes #1 = { norecurse nounwind nonlazybind readnone sanitize_address uwtable "target-cpu"="x86-64" }
attributes #2 = { noreturn nonlazybind sanitize_address uwtable "target-cpu"="x86-64" }
attributes #3 = { argmemonly nounwind willreturn }
attributes #4 = { nounwind nonlazybind sanitize_address uwtable "target-cpu"="x86-64" }
attributes #5 = { cold noinline noreturn nonlazybind sanitize_address uwtable "target-cpu"="x86-64" }
attributes #6 = { nonlazybind sanitize_address "target-cpu"="x86-64" }

!llvm.module.flags = !{!3, !4, !5}

!0 = !{{ { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @vtable.0}
!1 = !{{ <{ [11 x i8] }>, [53 x i8] }* @alloc47}
!2 = !{{ <{ i8*, [16 x i8] }>, [40 x i8] }* @alloc46}
!3 = !{i32 7, !"PIC Level", i32 2}
!4 = !{i32 7, !"PIE Level", i32 2}
!5 = !{i32 2, !"RtLibUseGOT", i32 1}
!6 = !{}
!7 = !{!8}
!8 = distinct !{!8, !9, !"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hf4feddeae345ff7eE: %_1"}
!9 = distinct !{!9, !"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hf4feddeae345ff7eE"}
